/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  dev
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "system";
    object      extrudeMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

// What to extrude:
//      patch   : from patch of another case ('sourceCase')
//      mesh    : as above but with original case included
//      surface : from externally read surface

//constructFrom mesh;
constructFrom patch;
//constructFrom surface;

// If construct from patch/mesh:
sourceCase "../cavity";
sourcePatches (movingWall);

// If construct from patch: patch to use for back (can be same as sourcePatch)
exposedPatchName movingWall;

// If construct from surface:
surface "movingWall.stl";

// Flip surface normals before usage. Valid only for extrude from surface or
// patch.
flipNormals false;

// Optional zone name/names for the cells in the extruded regions
// The cells can be in a single zone or a separate zone for each extruded patch
//zoneNames (movingWallCells)

// ... or in a separate zone for each extruded patch
// with the same name as the corresponding patch
//zoneNames (patchNames)

// Linear extrusion in point-normal direction
extrudeModel
{
    type            linearNormal;

    nLayers         10;
    expansionRatio  1.0;

    thickness       0.05;
}

// Single layer linear extrusion in point-normal direction
// with empty patches on front and back
// extrudeModel
// {
//     type            plane;
// }

// Linear extrusion in specified direction
// extrudeModel
// {
//     type            linearDirection;
//
//     nLayers         10;
//     expansionRatio  1.0;
//
//     direction       (0 1 0);
//     thickness       0.05;
// }

// Linear extrusion along an arbitrary path specified as an edgeMesh
// extrudeModel
// {
//     type            path;
//
//     nLayers         10;
//     expansionRatio  1.0;
//
//     path            "constant/geometry/curve.obj";
// }

// Sector extrusion
// extrudeModel
// {
//     type            sector;
//
//     // For nLayers=1 assume symmetry so angle/2 on each side
//     nLayers         10;
//     expansionRatio  1.0;
//
//     axisPt          (0 0.1 -0.05);
//     axis            (-1 0 0);
//     angle           360;
// }

// Wedge extrusion of a single layer
//  with wedge patches on front and back
// extrudeModel
// {
//     type            wedge;
//
//     axisPt          (0 0 0);
//     axis            (1 0 0);
//     angle           1;
// }

// Extrudes into sphere around (0 0 0)
// extrudeModel
// {
//     type            linearRadial;
//
//     nLayers         10;
//     expansionRatio  1.0;
//
//     R               0.1;
//     Rsurface        0.01; // Optional inner radius
// }

// Extrudes into sphere around (0 0 0) with specified radii
// extrudeModel
// {
//     type            sphericalRadial;
//
//     nLayers         10;
//     expansionRatio  1.0;
//
//     // Radii specified through interpolation table
//     R               table ((0 0.01)(3 0.03)(10 0.1));
// }

// Extrudes into sphere with grading according to pressure (atmospherics)
// extrudeModel
// {
//     type            sigmaRadial;
//
//     nLayers         10;
//     expansionRatio  1.0;
//
//     RTbyg           1;
//     pRef            1;
//     pStrat          1;
// }

// Do front and back need to be merged? Usually only makes sense for 360
// degree wedges.
mergeFaces false;

// Merge small edges. Fraction of bounding box.
mergeTol 0;

// ************************************************************************* //
